﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using PMC.Interfaces;

namespace PMC.Extensions
{
    public interface IExtension : ISaveloadable
    {
        TabPage SettingsControl { get; }

        /// <summary>
        /// Event raised after finishing of the extension
        /// </summary>
        /// <remarks>
        /// If extension uses Threads you may need to use Invoke
        /// </remarks>
        event EventHandler Finished;
        /// <summary>
        /// Event raised after activating the extension
        /// </summary>
        /// <remarks>
        /// If extension uses Threads you may need to use Invoke
        /// </remarks>
        event CancelEventHandler Activated;

        bool OnActivated();
        void OnFinished();
    }
}
